package com.leehongrim.tools.http;

import lombok.extern.slf4j.Slf4j;

import java.io.*;
import java.net.URL;

import org.apache.commons.io.FileUtils;

@Slf4j
public class UrlToFile {

    /**
     * 从 URL 下载文件到本地
     * @throws IOException 网络或文件操作异常
     */
    public static File download(String pdfUrl, String saveFilePath) throws IOException {
        // 1. 验证并创建保存目录
        File saveFile = new File(saveFilePath);
        File parentDir = saveFile.getParentFile();
        if (parentDir != null && !parentDir.exists()) {
            parentDir.mkdirs(); // 自动创建不存在的父目录
        }

        // 4. 读取网络流并写入本地文件
        try {
            URL httpUrl = new URL(pdfUrl);
            File f = new File(saveFilePath);
            FileUtils.copyURLToFile(httpUrl, f);
            log.info("PDF 下载完成：" + saveFile.getAbsolutePath());
            return saveFile;
        } catch (Exception e) {
            log.error(e.getMessage(), e);
        }
        return null;
    }

    public static void main(String[] args) {
        try {
            // 示例：下载一张图片到本地
            String url = "https://lib.qztc.edu.cn/_upload/article/files/61/9e/2ebc84ca44c0af30c5c4439ac694/9507a5ad-9161-4d23-bb62-ab193751d92b.pdf"; // 示例图片 URL
            String savePath = "/Users/hubusi/Downloads/20251112-150304-57.pdf";  // 本地保存路径
            download(url, savePath);
        } catch (IOException e) {
            System.err.println("下载失败：" + e.getMessage());
            e.printStackTrace();
        }
    }
}